package com.zx.mes.hyl.upms.service;


import com.zx.mes.hyl.common.pagemodel.LayPageHelper;
import com.zx.mes.hyl.common.pagemodel.SessionInfo;
import com.zx.mes.hyl.common.pagemodel.Tree;
import com.zx.mes.hyl.upms.model.Tresource;
import com.zx.mes.hyl.upms.pagemodel.Resource;

import java.util.List;


/**
 * 资源Service
 * 
 * @author hyl
 * 
 */
public interface ResourceServiceI {

	/**
	 * 获得资源树(资源类型为菜单类型)
	 * 通过用户ID判断，他能看到的资源
	 * @param sessionInfo 个人详细信息
	 * @return list<tree>
	 */
	List<Tree> tree(SessionInfo sessionInfo);

	/**
	 * 获得资源树(包括所有资源类型)
	 * 
	 * 通过用户ID判断，他能看到的资源
	 * 
	 * @param sessionInfo 个人详细信息
	 * @return list<tree>
	 */
	List<Tree> allTree(SessionInfo sessionInfo);

	/**
	 * 获得资源树(按模块包括所有资源类型)
	 *
	 * 通过用户ID判断，他能看到的资源
	 *
	 * @param sessionInfo 个人详细信息
	 * @return list
	 */
	List<Tree> treeByTsys(SessionInfo sessionInfo);

	/**
	 * 获得资源树(按模块包括所有资源类型)
	 *
	 * 通过用户ID判断，他能看到的资源
	 *
	 * @param sessionInfo 个人详细信息
	 * @return 返回有层级的List
	 */
	List<Tresource> treeByTsysOrg(SessionInfo sessionInfo);

	/**
	 * 获得资源列表
	 * 
	 * @param sessionInfo 个人详细信息
	 * 
	 * @return list
	 */
	List<Resource> treeGrid(SessionInfo sessionInfo);

	/**
	 * 添加资源
	 * 
	 * @param resource  资源entity
	 * @param sessionInfo 个人详细信息
	 */
	void add(Resource resource, SessionInfo sessionInfo);

	/**
	 * 删除资源
	 * 
	 * @param id 角色id
	 */
	void delete(String id);

	/**
	 * 修改资源
	 * 
	 * @param resource 资源entity
	 */
	void edit(Resource resource);

	/**
	 * 获得一个资源
	 * 
	 * @param id 资源id
	 * @return resource
	 */
	Resource get(String id);


	/**
	 * 根据resource条件找到所有数据
	 * @param resource entity
	 * @param ph 分页 entity
	 * @return list
	 */
	List<Resource> findAll(Resource resource, LayPageHelper ph);


	/**
	 * 根据resource条件获得符合条件数据的数目
	 * @param resource entity
	 * @return long
	 */
	long count(Resource resource);

}
